package com.ssy.lingxi.platform.manage.service.content;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.model.vo.PageVO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.platform.manage.entity.content.ContentNotice;
import com.ssy.lingxi.platform.manage.model.request.common.CommonIdRequest;
import com.ssy.lingxi.platform.manage.model.request.common.CommonStatusRequest;
import com.ssy.lingxi.platform.manage.model.request.content.ContentNoticePageRequest;
import com.ssy.lingxi.platform.manage.model.request.content.ContentNoticeRequest;
import com.ssy.lingxi.platform.manage.model.response.ContentNoticeResponse;

import java.util.List;

/**
 * 公告管理 - 业务处理层
 * @author fhj
 * @version 2.0.0
 * @date 2020/9/17
 */
public interface IContentNoticeService {

    Wrapper<PageData<ContentNotice>> page(ContentNoticePageRequest request);

    Wrapper<ContentNotice> get(CommonIdRequest request);

    Wrapper<Void> add(ContentNoticeRequest request, UserLoginCacheDTO user);

    Wrapper<Void> update(ContentNoticeRequest request, UserLoginCacheDTO user);

    Wrapper<Void> updateStatus(CommonStatusRequest request, UserLoginCacheDTO user);

    Wrapper<Void> delete(CommonIdRequest request, UserLoginCacheDTO user);

    Wrapper<List<ContentNotice>> findAllByColumnType(Integer columnType);

    Wrapper<PageData<ContentNotice>> findNewestNotice(PageVO pageVO);

    Wrapper<List<ContentNoticeResponse>> findWithOutContent(Integer columnType);
}
